/**
 * This is the PerformeCommunication Interface.
 * It's containes business logic declarations
 * related to the communications entities.
 * The logic methods are implemented on the
 * PerformeProjects class.
 * 
 * @author SIDIBE Tididiane
 */
package com.teamreinforce.ejb.model;

import com.teamreinforce.ejb.entities.Collaborateur;
import com.teamreinforce.ejb.entities.Projet;
import com.teamreinforce.ejb.entities.Sujet;
import java.util.List;
import javax.ejb.Remote;

@Remote
public interface IPerformeCommunication {
    
    /**
     * Create a meeting for the specified project
     * @param project
     * @param titre
     * @param description
     * @param dateReunion
     * @param heureDebut
     * @param heureFin
     * @param salle 
     */
    public void createMeeting (Projet project, List<Collaborateur> participants, String titre, String description, String dateReunion, String heureDebut, String heureFin, String salle);
    
    /**
     * Create a discution subject for the project.
     * Takes the collaborator who creates the subject.
     * The collaborator can come from the session.
     * The date come from the local system.
     * @param collaborator
     * @param project
     * @param titre
     * @param sujet 
     */
    public void createSubject (Collaborateur collaborator, Projet project, String titre, String sujet);
    
    /**
     * Add the comment of a collaborator to the discussion
     * @param collaborator
     * @param subject
     * @param message 
     */
    public void postResponse (Collaborateur collaborator, Sujet subject, String message);
}
